// 封装防抖函数
//  防抖（debounce）是一种控制方法，用于在事件被触发n秒后再执行回调函数，如果在这n秒内事件再次被触发，则重新计时。
// 在JavaScript中，防抖可以通过设置定时器来实现。当事件触发时，我们设置一个定时器，并在指定的时间后执行操作。如果在这段时间内事件再次被触发，我们清除当前的定时器并重新设置。

// 当用户输入 华   --  到底调不调接口 给用户一秒时间来输入  1秒之后用户还继续输入的话 说明用户输入未停止 先不调用接口
//   1秒后用户不再输入，说明用户输入停止  调用接口
const shake = (handler, time) => {
    let timer
    return function () {
        clearTimeout(timer)
        timer = setTimeout(() => {
            // 调用传入的函数，并将当前this指向和所有参数传递给这个hanshu
            handler.call(this, ...arguments)
        }, time)
    }
}

export default shake